package billrestauration.entities;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import org.springframework.context.annotation.Lazy;

import billrestauration.extra.Config;

@Entity
@Lazy(value=false)
@Table(uniqueConstraints={@UniqueConstraint(columnNames={"username","role"})})
public class Role  implements Serializable{

	public Role(String role, Utilisateur utilisateur) {
		super();
		this.role = role;
		this.utilisateur = utilisateur;
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = Config.versionUID;
	@Column
	@Id
	@GeneratedValue
private long id;
	@Column(unique=false,nullable=false,name="role")
private String role;
	@Column(name="descriptionrole",nullable=true,length=256)
private String descriptionrole;
	@ManyToOne(targetEntity=Utilisateur.class)
	@JoinColumn(name="username",nullable=false,referencedColumnName="username")
	private Utilisateur utilisateur;
	
	@Override
	public String toString() {
		return "Role [id=" + id + ", role=" + role + ", descriptionrole="
				+ descriptionrole + ", utilisateur=" + utilisateur + "]";
	}
	public Role(long id, String role, String descriptionrole,
			Utilisateur utilisateur) {
		super();
		this.id = id;
		this.role = role;
		this.descriptionrole = descriptionrole;
		this.utilisateur = utilisateur;
	}
	public Utilisateur getUtilisateur() {
		return utilisateur;
	}
	public void setUtilisateur(Utilisateur utilisateur) {
		this.utilisateur = utilisateur;
	}
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getRole() {
		return role;
	}
	public void setRole(String role) {
		this.role = role;
	}
	public String getDescriptionrole() {
		return descriptionrole;
	}
	public void setDescriptionrole(String descriptionrole) {
		this.descriptionrole = descriptionrole;
	}
	 
	public Role() {
		super();
		// TODO Auto-generated constructor stub
	}
	 
	
}
